1. Field of the Invention
The present invention provides an IO processor, especially an IO processor which includes an embedded CPU and can be optionally connected with an external CPU.
2. Description of the Prior Art
In the conventional storage virtualization systems, there existed various problems as follows. In one conventional storage virtualization system, because a great quantity of IO procedures is processed only with software, a CPU wastes a lot of time on processing IO procedures, resulting in low performance of the entire system. In another conventional storage virtualization system, although hardware is provided in a storage virtualization controller (SVC) to assist IO procedure processing, because no dedicated IO processor is provided, the circuitry in the SVC is complicated and costly. In still another conventional storage virtualization system, although a dedicated IO processor including an embedded CPU is provided in an SVC, such an IO processor lacks CPU scalability. Thanks to the prosperous development of the network environment, many requests coming from various host computers need to be processed by the SVC at the same time, and thus a huge amount of IO instructions for data movement, computation, interruption, etc., are generated to be handled; however, only one embedded CPU can not handle the heavy loading from all the associated procedures, which results in the performance degradation of the entire system. Therefore, the IO processor performance becomes a bottleneck of the system performance.
Moreover, if the IO processor in the conventional SVC is provided with an external CPU with a dual core structure for processing the IO procedures, although the processing speed is fast, the cost is high, and once one of the dual CPU cores breaks down, the external CPU with the dual core structure needs to be replaced totally, rather than replacing just the broken CPU core. Furthermore, when a load for CPU is too heavy or too light, the external CPU with the dual core structure lacks the flexibility to change only one of the CPU cores instead of switching both CPU cores together to meet the cost considerations and requirements of practical applications.